iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
自我挑戰組

從無到有打造驗證碼共享的 Line 機器人系列 第 3

建立 Google App Script 專案(2)

  • 分享至 

  • xImage
  •  

今天目標是成功篩選出特定條件的信件內容,方便我們之後 push 到資料庫供 Line Messaging Api 使用

Google App Script 的文件

網路上其實有非常多優質的 GAS 教學文章,筆者過去也是看著大神們的文章一步步接觸新東西。但是在沒有教學文章的情況下該怎麼辦呢?對工程師來說,最簡單暴力的就是看程式碼或是官方文件了!

GAS 的免費限額

GAS 到目前為止都還是免費限額使用,詳細的配額限制可以參考以下文件,基本上以個人用途來說不太容易超過配額,可以放心使用。

Quotas for Google Services

Apps Script services have daily quotas and limitations on some features. If you exceed a quota or limitation, your script throws an exception and execution stops.

GAS 支援文件

Apps Script | Google Developers

Google 的各項服務其實都提供了很詳細的說明文件,而 GAS 也不例外,在說明文件的首頁找到我們需要的 Gmail 點進去吧!

Gmail Service

可以看到前篇文章使用到的 Class GmailApp 底下的 Method getInboxThreads(start, max) 也在其中

搜尋特定內容的郵件

目標是只要找出 Netflix 發送給我們的最新郵件,從文件中找出最適合的 Method 為 search(query, start, max)

  • query(String),而且平常在 Gmail 搜尋郵件時下的條件都能使用(更多搜尋運算子)
  • start(Integer),符合 query 條件的 threads 中,以 index == start 的 thread 開始取得
  • max(Integer),從 start 開始取得最多 max 則的 threads,不足 max 則時,其餘返回 empty array

所以我們可以寫出以下的程式碼去取得最新一則 Nextflix 發給我們的 GmailThread 的主旨和訊息內容

function readMail() {
  var firstThread = GmailApp.search('from:netflix', 0, 1)[0];
  Logger.log(firstThread.getFirstMessageSubject());
  var messages = firstThread.getMessages();
  for (var i = 0; i < messages.length; i++) {
    Logger.log(messages[i].getPlainBody());
  }
}

最後按下執行,確認結果

今日目標完成!即將迎接 Friday Night 的到來,期待~
明天繼續研究怎麼將取得的內容存放到適合的資料庫中,GAS能存放的媒介選擇可不少呢~


上一篇
建立 Google App Script 專案(1)
下一篇
利用 Google App Script 將資料存到 Google Sheet(1)
系列文
從無到有打造驗證碼共享的 Line 機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言